A database is a collection of related files or data that is created and managed by a database management system (DBMS) in a predefined format. For example, a DBMS can be arranged in tables that contain rows and columns. Queries can be constructed in accordance to a standard query language (e.g., structured query language (SQL)) in order to access content of a table in the database. Likewise, data can be input (e.g., imported) into the table via an external source. Today, a DBMS can manage any form of data including text, images, sound and video. In accordance therewith, database and file structures are determined by a software application.
Conventionally, a DBMS employs predefined simple data types which can refer to a category of variable that is determined by the kind of data stored in it. For example, integer, floating point, string, logical, date and binary are common simple data types. Recently, efforts have been directed to the utilization of a user-defined data type (UDT) to increase DBMS storage flexibility and management. More particularly, the functionality of a UDT affords developers and users the flexibility to create a UDT (e.g., via standard SQL statements), which are compatible with a particular database application.
Effectively, a UDT is a fundamental new database extensibility mechanism. Accordingly, the development of the UDT enables the modeling and manipulation of complex types within a storage environment (e.g., DBMS). Utilization of the UDT includes concepts such as inheritance, containment, and multi-valued embeddings.
Although efforts have been directed to new and novel storage formats for the UDT, a substantial need exists for a system and/or methodology of checking the consistency of values stored using such a format in an efficient way. In other words, a need exists for a system and/or methodology that detects inconsistent or corrupt values in scenarios such as a remote procedure call (RPC) (e.g., accepting new values from a client), conversion (e.g., from another type such as binary to UDT), distributed query (e.g., accepting values from a remote database or server), and database consistency checking tools.